package com.learn.english.service;

import com.learn.english.model.entity.User;
import com.learn.english.domain.PageQueryDTO;
import com.learn.english.domain.R;

import java.util.List;

/**
 * @author TISNIW
 * @version 1.0
 * @date 2025/6/16 11:09
 * @desc 用户管理服务接口
 */
public interface IUserService {

    /**
     * 获取用户总数
     */
    Long getUserCount();
    
    /**
     * 分页查询用户列表
     */
    R getUserList(PageQueryDTO queryDTO);

    /**
     * 根据ID获取用户详情
     */
    R getUserDetail(Long id);

    /**
     * 添加用户
     */
    R addUser(User user);

    /**
     * 更新用户信息
     */
    R updateUser(User user);

    /**
     * 更新用户状态
     */
    R updateUserStatus(Long id, Byte status);

    /**
     * 重置用户密码
     */
    R resetPassword(Long id, String newPassword);

    /**
     * 删除用户
     */
    R deleteUser(Long id);

    /**
     * 批量删除用户
     */
    R batchDeleteUsers(List<Long> ids);

    /**
     * 批量更新用户状态
     */
    R batchUpdateUserStatus(List<Long> ids, Byte status);

    /**
     * 根据条件搜索用户
     */
    R searchUsers(PageQueryDTO queryDTO);
}
